package com.elka.wdec.utils;

/**
 * Reprezentuje pojedyncze rozwiazanie (punkt na wykresie)
 * @author michand
 */
public class Rozwiazanie implements Comparable {

    private double zysk;
    private double ryzyko;

    private double dostepnaGotowka;
    private int wolumen;
    private int jakosc;
    private double kosztJednostkowy;
    private double kosztCalkowity;

    private double cena;
    private double reklama;
    private double kredyt;
    private double wzietyKredyt;
    private double zyskNorm;

    public Rozwiazanie(
            int wolumen, int jakosc, int cena,
            int reklama, int kredyt) {
        this.wolumen = wolumen;
        this.jakosc = jakosc;
        this.cena = cena;
        this.reklama = reklama;
        this.kredyt = kredyt;
    }
    
    public double getZyskNorm()
    {
        return zyskNorm;
    }
    
    public void setZyskNorm(double zyskNorm)
    {
        this.zyskNorm = zyskNorm;
    }
    
    public double getKredyt()
    {
        return kredyt;
    }

    public double getDostepnaGotowka() {
        return dostepnaGotowka;
    }

    public void setDostepnaGotowka(double dostepnaGotowka) {
        this.dostepnaGotowka = dostepnaGotowka;
    }

    public double getZysk() {
        return zysk;
    }

    public void setZysk(double zysk) {
        this.zysk = zysk;
    }

    public double getRyzyko() {
        return ryzyko;
    }

    public int getWolumen() {
        return wolumen;
    }

    public void setWolumen(int wolumen) {
        this.wolumen = wolumen;
    }

    public int getJakosc() {
        return jakosc;
    }

    public void setJakosc(int jakosc) {
        this.jakosc = jakosc;
    }

    public double getCena() {
        return cena;
    }

    public void setCena(double cena) {
        this.cena = cena;
    }

    public double getReklama() {
        return this.reklama;
    }

    public void setReklama(double reklama) {
        this.reklama = reklama;
    }

    public void setRyzyko(double ryzyko) {
        this.ryzyko = ryzyko;
    }

    @Override
    public int compareTo(Object o) {
        Rozwiazanie pt = (Rozwiazanie)o;

        if (pt.getZysk() < this.getZysk()) {
            return -1;
        } else if(pt.getZysk() > this.getZysk()){
            return 1;
        } else {
            return 0;
        }
    }

    @Override
    public String toString() {
        return "W: " + this.wolumen + " J: " + this.jakosc + " C: " + this.cena + " R: " + this.reklama + " K: " + this.kredyt;
    }

    public double getKosztJednostkowy() {
        return kosztJednostkowy;
    }

    public void setKosztJednostkowy(double kosztJednostkowy) {
        this.kosztJednostkowy = kosztJednostkowy;
    }


    public double getKosztCalkowity() {
        return kosztCalkowity;
    }

    public void setKosztCalkowity(double kosztCalkowity) {
        this.kosztCalkowity = kosztCalkowity;
    }

    public boolean dpuszczalne() 
    {
        double rownanie = (StanPoczatkowy.getIloscGotowki() + kredyt) - kosztCalkowity;
        if(rownanie<0)
        {
            return false;
        }
        return true;
    }
}
